<?php

/**
 * Listado de Direcciones
 * @Direcciones
 * GenProg Lenguaje de Modelos
 *
 *
 * @author      Carlos Peña <crash.madover@gmail.com>
 * @package     application.model.sis.nomina
 * @copyright   (c) 2013, GenProg
 * @version     v 1.0
 */
class Direcciones {
  // -------------------------------------------------------------------------------------

  /**
   * Prefijo de los Campos
   *
   * @access    public
   * @var       string
   */
  public $prefijo = 'DIR';

  // -------------------------------------------------------------------------------------

  /**
   * Nombre de la Tabla en la Base de Datos
   *
   * @access    public
   * @var       string
   */
  public $tabla = 'K_RDirecciones';

  // -------------------------------------------------------------------------------------

  /**
   * Sexo
   * 
   * @access public
   * @var array()
   */
  public $sexo = array('0' => 'Masculino', '1' => 'Femenino');

  // -------------------------------------------------------------------------------------

  /**
   * Nacionalidad
   * 
   * @access public
   * @var array()
   */
  public $naci = array('V' => 'Venezolano', 'E' => 'Extranjero', 'DC' => 'Documentos Especiales', 'J' => 'Juridico', 'G' => 'Gubernamental');

  // -------------------------------------------------------------------------------------

  /**
   * Campos del Sistema y Base de datos
   *
   * @access    public
   * @var       array()
   */
  public $struc = array(//
    'cmp' => array(//
      'oidFKR' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Responsable', 'visible' => 'oculto',
        'clave_foranea' => array('responsable', 'oid')
      ), //            
      'oidFKC' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Ciudad', 'visible' => 'oculto',
        'clave_foranea' => array('ciudad', 'oid')
      ), //
      'oidFKP' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Parroquia', 'visible' => 'oculto',
        'clave_foranea' => array('parroquia', 'oid')
      ),
      'sector' => array('tipo' => 'VARCHAR', 'comentario' => 'Sector', 'longitud' => '64'), //
      'via' => array('tipo' => 'VARCHAR', 'comentario' => 'Via Principal', 'longitud' => '64'), //
      'edificio_casa' => array('tipo' => 'VARCHAR', 'comentario' => 'Edificio o Casa', 'longitud' => '64'), //
      'piso' => array('tipo' => 'VARCHAR', 'comentario' => 'Piso Oficina', 'longitud' => '64'), //
      'punto' => array('tipo' => 'TEXT', 'comentario' => 'Punto de Referencia'), //
      'telefono' => array('tipo' => 'VARCHAR', 'comentario' => 'Telefono Local', 'longitud' => '64'), //
      'celular' => array('tipo' => 'VARCHAR', 'comentario' => 'Celular', 'longitud' => '64'), //
      'correo' => array('tipo' => 'VARCHAR', 'comentario' => 'Correo Electronico', 'longitud' => '255'), //
    ),
    'join' => array(//
      'ciudad' => array('oid' => 'oidFKC', 'relacion' => 'cero-a-uno', 'dtd' => 'Ciudad'),
      'parroquia' => array('oid' => 'oidFKP', 'relacion' => 'cero-a-uno', 'dtd' => 'Parroquia'),
    )
  );

  // -------------------------------------------------------------------------------------

  /**
   * Descripcion del modelo
   * 
   * @access    public
   * @var       string
   */
  public $dtd = 'Lista de Direcciones';

  // -------------------------------------------------------------------------------------

  /**
   * Permite crear botones asignados a la Interfaz
   * C = Crear, R = Leer (Buscar), U = Actualizar (Modificar), D = Eliminar
   *
   * @access public
   * @var string
   */
  public $botones = 'CRUD';

  /**
   * 
   * @param Orm 
   * @return type
   */
  function GUI(Orm $Orm = null) {
    $estado = array();
    $oficinas = array('0' => 'Tipo de Servicio', '1' => 'Receptoria', '2' => 'Agente Autorizado', '3' => 'Aliado Comercial', '4' => 'Domicilio Cliente', '5' => 'Oficina Cliente');
    if (isset($Orm)) {
      $rs = $Orm->GPQL('Estado')->Asignar_Columnas('Estado.oid AS oid,Estado.nomb AS nomb')->Listar_Todo()->Ejecutar();
      foreach ($rs['rs'] as $sC => $sV) {
        $estado[$sV->oid] = $sV->nomb;
      }
    }
    $mun_parr = array('' => 'Seleccione una opcion');

    $frm[1] = array('etiqueta' => 'Tipo de Cuenta', 'id' => 'naci', 'tipo' => 'combo', 'clase' => 'icon1', 'requerido' => 1, 'elementos' => $this->naci, 'estilo' => 'width:210px');
    $frm[2] = array('etiqueta' => 'CI/RIF', 'id' => 'ced_rif', 'tipo' => 'numero', 'clase' => 'icon1', 'requerido' => 1, 'onblur' => 'Consultar(0)', 'estilo' => 'width:300px');
    $frm[3] = array('etiqueta' => 'Nombre Completo o Razón Social', 'id' => 'nombre_razon', 'tipo' => 'textarea', 'estilo' => 'width:510px');


    // ----------------------------------------------------------------------------
    // Direcciones

    $frm[4] = array('etiqueta' => 'Ciudad', 'id' => 'ciudad', 'tipo' => 'texto', 'completar' => 'CCiudad', 'onblur' => 'SCiudad()', 'requerido' => 1, 'estilo' => 'width:210px');
    $frm[5] = array('etiqueta' => 'Estado', 'id' => 'estado', 'tipo' => 'combo', 'elementos' => $estado, 'dependiente' => array("municipio", "CConsultar/Municipio"), 'onblur' => '', 'requerido' => 1, 'estilo' => 'width:300px');
    $frm[6] = array('etiqueta' => 'Municipio', 'id' => 'municipio', 'tipo' => 'combo', 'elementos' => $mun_parr, 'requerido' => 1, 'dependiente' => array("parroquia", "CConsultar/Parroquia"), 'estilo' => 'width:210px');
    $frm[7] = array('etiqueta' => 'Parroquia', 'id' => 'parroquia', 'tipo' => 'combo', 'elementos' => $mun_parr, 'requerido' => 1, 'estilo' => 'width:300px');
    $frm[8] = array('etiqueta' => 'Codigo Postal', 'id' => 'zona_postal', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[9] = array('etiqueta' => 'Sector', 'id' => 'sector', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[10] = array('etiqueta' => 'Via', 'id' => 'via', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[11] = array('etiqueta' => 'Edificio / Casa', 'id' => 'edificio_casa', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[12] = array('etiqueta' => 'Piso / Oficina', 'id' => 'piso', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[13] = array('etiqueta' => 'Punto de Referencia', 'id' => 'punto', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[14] = array('etiqueta' => 'Teléfono de Casa', 'id' => 'telefono', 'tipo' => 'texto', 'clase' => 'icon1');
    $frm[15] = array('etiqueta' => 'Celular', 'id' => 'celular', 'tipo' => 'texto', 'clase' => 'icon1');

    $frm[16] = array('etiqueta' => 'Correo Electronico', 'id' => 'correo', 'tipo' => 'texto', 'multicelda' => 1);

    // ----------------------------------------------------------------------------
    // Oficina
    $frm[17] = array('etiqueta' => 'Codigo Oficina', 'OFI_oid' => 'oficina', 'tipo' => 'numero', 'oculto' => 1);
    $frm[18] = array('etiqueta' => 'Oficina', 'id' => 'cmb_oficina', 'tipo' => 'combo', 'elementos' => $oficinas);
    $frm[19] = array('etiqueta' => 'Teclear Ubicacion de la Oficina', 'id' => 'ciudad_oficina', 'tipo' => 'texto', 'completar' => 'CCiudad', 'onblur' => 'SOficina()');
    $frm[20] = array('etiqueta' => 'Oficina', 'id' => 'OFI_nombre_razon', 'tipo' => 'combo', 'elementos' => $mun_parr, 'multicelda' => 1);

    $frm[21] = array('etiqueta' => 'Idem', 'id' => 'oid', 'tipo' => 'texto', 'clave' => 'index', 'oculto' => 1);
    $frm[22] = array('etiqueta' => 'Idem', 'id' => 'oid_r', 'tipo' => 'texto', 'clave' => 'index', 'oculto' => 1);
    $frm[23] = array('etiqueta' => 'Idem', 'id' => 'oidFKC', 'tipo' => 'texto', 'clave' => 'index', 'oculto' => 1);
    $frm[24] = array('etiqueta' => 'Idem', 'id' => 'oidFKC_r', 'tipo' => 'texto', 'clave' => 'index', 'oculto' => 1);
    

    $obj['php'] = array('campos' => $frm, 'titulo' => 'Datos de quien envia ');
    $obj['json'] = json_encode($obj['php']);
    return (object) $obj;
  }

  function Insertar() {
    /**
      INSERT INTO K_TEstado (EDO_oid,EDO_nomb) SELECT id_estado, estado FROM `estados`;
      insert into K_TCiudad (CIU_oid, CIU_oidFKE,CIU_nomb,CIU_capital) select id_ciudad,id_estado,ciudad,capital from ciudades;
      INSERT INTO K_TMunicipio (MUN_oid,MUN_oidFKC,MUN_nomb) SELECT id_municipio,id_estado,municipio FROM `municipios`;
      INSERT INTO K_TParroquia (PAR_oid, PAR_oidFKM, PAR_nomb) SELECT id_parroquia,id_municipio,parroquia FROM `parroquias`;
     */
  }

  function Grid(Orm $Orm = null, $arg = array()) {
    $i = 0;
    $oCab = array();
    $oFil = array();
    $oCab[1] = array("titulo" => "OID_Ciudad", "atributos" => "width:60px", "oculto" => 1);
    $oCab[2] = array("titulo" => "OID_Estado", "atributos" => "width:60px", "oculto" => 1);
    $oCab[3] = array("titulo" => "OID_Municipio", "atributos" => "width:60px", "oculto" => 1);
    $oCab[4] = array("titulo" => "OID_Parroquia", "atributos" => "width:60px", "oculto" => 1);
    $oCab[5] = array("titulo" => "Ciudad", "atributos" => "width:100px");
    $oCab[6] = array("titulo" => "Estado", "atributos" => "width:120px");
    $oCab[7] = array("titulo" => "Municipio", "atributos" => "width:100px");
    $oCab[8] = array("titulo" => "Parroquia", "atributos" => "width:100px");
    $oCab[9] = array("titulo" => "Sector", "atributos" => "width:100px");
    $oCab[10] = array("titulo" => "Via", "atributos" => "width:100px");
    $oCab[11] = array("titulo" => "Edificio", "atributos" => "width:100px");
    $oCab[12] = array("titulo" => "C-Postal", "atributos" => "width:50px");
    $oCab[13] = array("titulo" => "Punto", "oculto" => 1);
    $oCab[14] = array("titulo" => "Piso", "oculto" => 1);
    $oCab[15] = array("titulo" => "telefono", "oculto" => 1);
    $oCab[16] = array("titulo" => "Celular", "oculto" => 1);
    $oCab[17] = array("titulo" => "Correo", "oculto" => 1);

    $oCab[18] = array(//
      "titulo" => "#",
      "mantiene" => 1, // Que la fila no se elimine
      "tipo" => "enlace", //Ruta Imagen
      "metodo" => 1,
      'ruta' => IMG . 'aceptar.png',
      'funcion' => 'Localidad',
      "atributos" => "width:20px"
    );


    $sResponsable = '';
    if (isset($Orm)) {
      $rs = $Orm->GPQL('Responsable')->Donde_Columnas("Responsable.ced_rif='" . $arg['ced_rif'] . "'")->Listar_Donde()->Ejecutar();

      foreach ($rs['rs'] as $sC => $sV) {
        if ($sV->CIU_oid != '') {
          $sResponsable = 'Cedula / Rif: ' . $sV->RES_ced_rif . '<br> Nombre o Razon Social: ' . $sV->RES_nombre_razon . '<br><br>';
          $oFil[++$i] = array(//
            '1' => $sV->CIU_oid,
            '2' => $sV->EDO_oid,
            '3' => $sV->MUN_oid,
            '4' => $sV->PAR_oid,
            '5' => $sV->CIU_nomb,
            '6' => $sV->EDO_nomb,
            '7' => $sV->MUN_nomb,
            '8' => $sV->PAR_nomb,
            '9' => $sV->DIR_sector,
            '10' => $sV->DIR_via,
            '11' => $sV->DIR_edificio_casa,
            '12' => $sV->CIU_zona_postal,
            '13' => $sV->DIR_punto,
            '14' => $sV->DIR_piso,
            '15' => $sV->DIR_telefono,
            '16' => $sV->DIR_celular,
            '17' => $sV->DIR_correo,
            '18' => ''
          );
        }
      }
    }

    $contratos = array("Cabezera" => $oCab, "Cuerpo" => $oFil, "Origen" => "json", "titulo" => $sResponsable);
    return json_encode($contratos);
  }

}
?>

